package com.ahucoding.rocket.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ahucoding.rocket.common.model.Post;
import com.ahucoding.rocket.common.param.PostParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.time.LocalDateTime;

/**
 * @Description 内容表 Service接口
 * @Author
 * @CreateDate
 * @Version
 */
public interface PostService extends IService<Post> {

    /**
     * 内容表新增
     *
     * @param postParam PostParam
     */
    void createPost(PostParam postParam);

    /**
     * 内容表修改
     *
     * @param postParam PostParam
     */
    void updatePost(PostParam postParam);

    /**
     * 根据id获取内容表信息
     *
     * @param id String
     * @return Post
     */
    Post getPostById(Long id);

    /**
     * 内容表分页列表
     *
     * @param currentPage  当前页
     * @param pageSize     页大小
     * @param order        排序方式
     * @param orderFields  排序字段
     * @param id           $column.comment
     * @param createBy     创建人
     * @param createDate   创建时间
     * @param updateBy     更新人
     * @param updateDate   更新时间
     * @param deleteFlag   数据状态 0可用 -1不可用
     * @param title        标题
     * @param name         名称
     * @param url          链接地址
     * @param content      内容
     * @param shortContent 内容总结
     * @param isJudge      是否经过评价
     * @param isUserDefine 是否用户定制
     * @param sourceId     源id
     * @param contentDate  内容发表时间
     * @param categoryId   类别id
     * @param stars        得分
     * @param ttl          语音文件地址
     * @return Page
     */
    Page page(Integer currentPage, Integer pageSize, String order, String orderFields
            , Long id
            , String createBy
            , LocalDateTime createDate
            , String updateBy
            , LocalDateTime updateDate
            , Integer deleteFlag
            , String title
            , String name
            , String url
            , String content
            , String shortContent
            , Integer isJudge
            , Integer isUserDefine
            , Long sourceId
            , String contentDate
            , Long categoryId
            , Integer stars
            , String ttl
    );

    /**
     * 内容表删除
     *
     * @param id String
     */
    void deletePost(String id);

}
